﻿using System;
using System.ComponentModel.DataAnnotations;

namespace Management.Core.SiliconCutting
{
    /// <summary>
    /// 硅片切割
    /// </summary>
    public class SiliconCutting
    {
        [Key]
        [Display(Name = "切割ID")]
        public int SiliconCuttingID { get; set; }

        /// <summary>
        /// 切片质量ID
        /// </summary>
        [Display(Name="切片质量ID")]
        public int SliceQualityID { get; set; }

        /// <summary>
        /// 车间编号
        /// </summary>
        [Display(Name = "车间号")]
        public int WorkshopID { get; set; }

        /// <summary>
        /// 线锯编号(关联的是设备档案编号)
        /// </summary>
        [Display(Name = "线锯编号")]
        public int EquipmentFileID { get; set; }
        
        /// <summary>
        /// 切割序号
        /// </summary>
        [Display(Name = "切割序号")]
        public int CuttingID { get; set; }

        /// <summary>
        /// 切割编号
        /// </summary>
        [Display(Name = "切割编号")]
        public string CuttingNum { get; set; }

        /// <summary>
        /// 切割块数
        /// </summary>
        [Display(Name = "切割块数")]
        public float CuttingBlock { get; set; }

        /// <summary>
        /// 切割长度
        /// </summary>
        [Display(Name = "切割长度")]
        public float CuttingLength { get; set; }

        /// <summary>
        /// 底料长度
        /// </summary>
        [Display(Name = "底料长度")]
        public float BottomMaterialLength { get; set; }

        /// <summary>
        /// 切割规格
        /// </summary>
        [Display(Name = "切割规格")]
        public int CuttingSpecification { get; set; }

        /// <summary>
        /// 切割厚度
        /// </summary>
        [Display(Name = "切割厚度")]
        public int CuttingThickness { get; set; }

        /// <summary>
        /// 切割类型
        /// </summary>
        [Display(Name = "切割类型")]
        public string CuttingType { get; set; }
    
        /// <summary>
        /// 钢线编号
        /// </summary>
        [Display(Name = "钢线编号")]
        public int SteelWireID { get; set; }

        /// <summary>
        /// 槽距
        /// </summary>
        [Display(Name = "槽距")]
        public int SlotPitch { get; set; }

        /// <summary>
        /// 碳化硅编号
        /// </summary>
        [Display(Name = "碳化硅编号")]
        public int SiliconCarbideID { get; set; }

        /// <summary>
        /// 悬浮液编号
        /// </summary>
        [Display(Name = "悬浮液编号")]
        public int SuspensionID { get; set; }

        /// <summary>
        /// 浆料开始密度
        /// </summary>
        [Display(Name = "浆料开始密度")]
        public float PulpDensityStart { get; set; }

        /// <summary>
        /// 浆料结束密度
        /// </summary>
        [Display(Name = "浆料结束密度")]
        public float PulpDensityEnd { get; set; }

        /// <summary>
        /// 浆料更新量
        /// </summary>
        [Display(Name = "浆料更新量")]
        public float PulpUpdateCount { get; set; }

        /// <summary>
        /// 导轮刀数
        /// </summary>
        [Display(Name = "导轮刀数")]
        public int GuideNum { get; set; }

        /// <summary>
        /// 是否发生断线
        /// </summary>
        [Display(Name = "是否发生断线")]
        public int IsBreaked { get; set; }

        /// <summary>
        /// 断线情况编号
        /// </summary>
        [Display(Name = "断线情况编号")]
        public int BreakedID { get; set; }

        /// <summary>
        /// 是否报废
        /// </summary>
        [Display(Name = "是否报废")]
        public int IsScrap { get; set; }

        /// <summary>
        /// 是否测试
        /// </summary>
        [Display(Name = "是否测试")]
        public int IsTest { get; set; }

        /// <summary>
        /// 清洗设备编号
        /// </summary>
        [Display(Name = "清洗设备编号")]
        public string CleaningEquipmentNum { get; set; }

        /// <summary>
        /// 预清洗设备编号
        /// </summary>
        [Display(Name = "预清洗设备编号")]
        public string Pre_CleaningEquipmentNum { get; set; }

        ///// <summary>
        ///// 切割班ID
        ///// </summary>
        //public int CuttingTeamID { get; set; }

        ///// <summary>
        ///// 清洗班ID
        ///// </summary>
        //public int CleaningTeamID { get; set; }
        
        ///// <summary>
        ///// 粘贴班ID
        ///// </summary>
        //public int PastingTeamID { get; set; }

        ///// <summary>
        ///// 浆料班ID
        ///// </summary>
        //public int PlubTeamID { get; set; }

        /// <summary>
        /// 班组ID
        /// </summary>
        [Display(Name = "班组ID")]
        public int TeamID { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [Display(Name = "备注")]
        public string Remark { get; set; }

        /// <summary>
        /// 一级品数量
        /// </summary>
        [Display(Name = "一级品数量")]
        public int LevelOneCount { get; set; }

        /// <summary>
        /// 二级品数量
        /// </summary>
        [Display(Name = "二级品数量")]
        public int LevelTwoCount { get; set; }

        /// <summary>
        /// 三级品数量
        /// </summary>
        [Display(Name = "三级品数量")]
        public int LevelThreeCount { get; set; }
        
        /// <summary>
        /// 合格品数量
        /// </summary>
        [Display(Name = "合格品数量")]
        public int QualifiedCount { get; set; }

        /// <summary>
        /// 不合格数量
        /// </summary>
        [Display(Name = "不合格数量")]
        public int UnqualifiedCount { get; set; }

        /// <summary>
        /// 碎片重量
        /// </summary>
        [Display(Name = "碎片重量")]
        public float DebrisWeight { get; set; }

        /// <summary>
        /// 合计数量
        /// </summary>
        [Display(Name = "合计数量")]
        public int SumCount { get; set; }

        /// <summary>
        /// 合格率
        /// </summary>
        [Display(Name = "合格率")]
        public string QualifiedRate { get; set; }

        /// <summary>
        /// 经办人
        /// </summary>
        [Display(Name = "经办人")]
        public string Handler { get; set; }

        /// <summary>
        /// 一级品理论数量
        /// </summary>
        [Display(Name = "一级品理论数量")]
        public int LevelOneTheoreticalCount { get; set; }

        /// <summary>
        /// 抽检数量
        /// </summary>
        [Display(Name = "抽检数量")]
        public int SpotCheckCount { get; set; }

        /// <summary>
        /// 抽检不合格数量
        /// </summary>
        [Display(Name = "抽检不合格数量")]
        public int SpotCheckUnqualifiedCount { get; set; }

        /// <summary>
        /// 抽检备注
        /// </summary>
        [Display(Name = "抽检备注")]
        public string SpotCheckRemark { get; set; }

        /// <summary>
        /// 是否审核
        /// </summary>
        [Display(Name = "是否审核")]
        public int IsCheck { get; set; }

        /// <summary>
        /// 审核人
        /// </summary>
        [Display(Name = "审核人")]
        public string Checker { get; set; }

        /// <summary>
        /// 是否抽检
        /// </summary>
        [Display(Name = "是否抽检")]
        public int IsSpotCheck { get; set; }

        /// <summary>
        /// 抽检审核人
        /// </summary>
        [Display(Name = "抽检审核人")]
        public string SpotChecker { get; set; }

        /// <summary>
        /// 员工编号
        /// </summary>
        [Display(Name = "员工编号")]
        public string EmployeeNum { get; set; }

        /// <summary>
        /// 计入考核
        /// </summary>
        [Display(Name = "计入考核")]
        public int IsIncludedAssessment { get; set; }

        /// <summary>
        /// 切割日期
        /// </summary>
        [Required(ErrorMessage = "必填")]
        [Display(Name = "切割日期")]
        public DateTime CuttingDate { get; set; }

        /// <summary>
        /// 关联断线表
        /// </summary>
        public virtual Breaked.Breaked Breaked { get; set; }

        /// <summary>
        /// 设备档案（线具编号）
        /// </summary>
        public virtual EquipmentFile.EquipmentFile EquipmentFile { get; set; }

        /// <summary>
        /// 关联碳化硅
        /// </summary>
        public virtual SiliconCarbide.SiliconCarbide SiliconCarbide { get; set; }

        /// <summary>
        /// 关联钢线
        /// </summary>
        public virtual SteelWire.SteelWire SteelWire { get; set; }

        /// <summary>
        /// 关联悬浮液
        /// </summary>
        public virtual Suspension.Suspension Suspension { get; set; }

        /// <summary>
        /// 关联班组
        /// </summary>
        public virtual Team.Team Team { get; set; }

        /// <summary>
        /// 关联切片质量
        /// </summary>
        public virtual SliceQuality.SliceQuality SliceQuality { get; set; }

        ///// <summary>
        ///// 关联车间
        ///// </summary>
        //public virtual Workshop.Workshop Workshop { get; set; }
    }
}
